#include "stdio.h"
#define MaxSize  100
typedef int DataType;

typedef struct{
    DataType List[MaxSize];
    int size;
}SeqList;
void ListInitiate(SeqList *L)/*初始化顺序表*/
{
    L->size =0;/*定义初始数据元素个数*/
}
int ListLength(SeqList L)/*返回顺序表L的当前数据元素个数*/
{
    return L.size;
}
int ListInsert(SeqList *L,int i,DataType x)/*在顺序表L的位置i（0<=i <=size)前插入数据元素值*/
/*插入成功返回1,插入失败返回0*/
{
    int j;
    if (L->size >= MaxSize)
    {
        printf("顺序表已满无法插入！ \n");
        return 0;
    }
    else if(i <0 || i > L -> size)
    {
        printf("参数i不合法！ \n");
        return 0;
    }
    else
    {
        //此段程序有错误
        for( int j = L -> size; j > i ; j--)
            L->List[j] = L ->List[j - 1];/*为插入做准备*/
        L->List[i] = x; /*插入*/
        L->size ++;/* 元素个数加1*/
        return 1;
    }
}

int ListDelete(SeqList *L,int i ,DataType *x)
/*删除顺序表L中位置i（0 <=i<=size -1 )的数据元素值并存放到参数x中*/
/*删除成功返回1，删除失败返回0*/
{
    int j;
    if (L ->size <=0)
    {
        printf("顺序表已空无数据元素可删! \n") ;
        return 0;
    }
    else if (i <0|| i> L->size -1)
    {
        printf("参数i不合法");
        return 0;
    }
    else
    {//此段程序有错误

        *x = L->List[i];/*保存删除的元素到参数x中*/
        for(j = i + 1; j <= L->size -1; j++)
            L->List[j] = L->List[j-1];/*依次前移*/
        L->size--;/*数据元素个数减1*/
        return 1;
    }

}

int ListGet(SeqList L,int i,DataType *x)
/*取顺序表L中第i个数据元素的值存于x中，成功则返回1，失败返回0*/
{
    if(i <0|| i>L.size-1)
    {
        printf("参数i不合法！ \n");
        return 0;
    }
    else
    {
        *x =L.List[i];
        return 1;
    }
}
//有错误：实现函数体，实现在L内查找x。
//当x存在于L中时，返回x所在的索引的最小值；
//当x不存在于L中时，返回-1.
int ListSearch(SeqList L,DataType x){
}
int main(int argc, char * argv[])
{
    SeqList myList;
    int i,x;
    ListInitiate(&myList);
    for(i = 0;i < 10;i++)
        ListInsert(&myList,i,i + 1);
    ListDelete(&myList,4,&x);
    for(i = 0; i< ListLength(myList);i++)
    {
        //此段程序有一处错误
        ListGet(myList,i,&x);
        printf("%d", x);
    }

    return 0;
}

